/*
 * Copyright (C), 2002-2017, 上海亦寻信息技术有限公司
 * FileName: ListPage.java
 * Author:   linyao
 * Date:     2017-3-13 下午5:51:03
 * Description: //模块目的、功能描述      
 * History: //修改记录
 * <author>      <time>      <version>    <desc>
 * 修改人姓名             修改时间            版本号                  描述
 */
package com.emm.yixun.common.utils;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * list分页 〈功能详细描述〉
 * 
 * @author linyao
 * @see [相关类/方法]（可选）
 * @since [产品/模块版本] （可选）
 */
public class ListPage<T> implements Serializable {

	/**
	 */
	private static final long serialVersionUID = -5074845801314030896L;

	/**
	 * 分页 功能描述: <br>
	 * 〈功能详细描述〉
	 * 
	 * @param pageNo
	 * @param pageSize
	 * @param list
	 * @return
	 * @throws Exception
	 * @see [相关类/方法](可选)
	 * @since [产品/模块版本](可选)
	 */
	public List<T> page(int pageNo, int pageSize, List<T> list) throws Exception {
		List<T> result = new ArrayList<T>();
		if (list != null && list.size() > 0) {
			int allCount = list.size();
			int pageCount = (allCount + pageSize - 1) / pageSize;
			if (pageNo >= pageCount) {
				pageNo = pageCount;
			}
			int start = (pageNo - 1) * pageSize;
			int end = pageNo * pageSize;
			if (end >= allCount) {
				end = allCount;
			}
			for (int i = start; i < end; i++) {
				result.add(list.get(i));
			}
		}
		return (result != null && result.size() > 0) ? result : null;
	}

}
